Hardware security modules (HSMs) are used to protect highly sensitive data. For example, HSMs are generally defined to handle cryptographic responsibilities, such as key generation, public/private key cryptography, data encryption, and secure storage of cryptographic data. As implied by the name, conventional HSMs provide their functionality by way of hardware, i.e., circuitry. The conventional HSM hardware is defined to provide a specific and restrictive external interface that allows only authorized entities to access the data stored with the HSM and control the HSM for the purpose of generating data. Extensive complex circuitry is required to implement the functional and storage requirements of the HSM. Thus, the conventional HSM, as implemented in hardware, can be prohibitively expensive for use in deployments that only require a limited subset of the security features offered by the conventional HSM.